<?php
namespace Devcopilot\Models;

use Devcopilot\Models\BaseModel;

class Version extends BaseModel
{
    protected $table = 'versions';
    protected $fillable = [
        'version_number',
        'application_id',
        'description',
        'status',
        'release_time'
    ];

    public function __construct($attributes = [])
    {
        parent::__construct($attributes);
    }

    public function getCount(string $type) {
        $query = $this->newQuery();
        if($type === 'dev') {
            // 开发中的版本
            $query->where('v_status', '=', 1);
        }
        return $query->count();
    }

    // 获取版本关联的应用
    public function application()
    {
        // 实际开发中会查询数据库获取关联应用
        // return Application::find($this->application_id);
        return null;
    }

    // 获取版本关联的功能
    public function features()
    {
        // 实际开发中会查询数据库获取版本的所有功能
        // return Feature::where('version_id', $this->id)->get();
        return [];
    }

    // 获取版本关联的任务
    public function tasks()
    {
        // 实际开发中会查询数据库获取版本的所有任务
        // return Task::where('version_id', $this->id)->get();
        return [];
    }

    // 获取所有状态选项
    public function getStatusOptions()
    {
        return [
            '开发中' => '开发中',
            '测试中' => '测试中',
            '已发布' => '已发布',
            '已废弃' => '已废弃'
        ];
    }
}